home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / XMTRZMAT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  6.3 KB  |  236 lines

  1. 10  'XMTRZMAT - Transmitter Transistor Stage Coupling - 30 APR 96 rev. 30 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
  4. 40  COMMON EX$,PROG$
  5. 50  CLS:KEY OFF
  6. 60  COLOR 7,0,1
  7. 70  UL$=STRING$(80,205)
  8. 80  X$=STRING$(80,32)
  9. 90  C$="##,###"
  10. 100  U$="##,###.###"
  11. 110  E$="##,###.######"
  12. 120  T$=" TRANSMITTER TRANSISTOR STAGE COUPLING "
  13. 130  PI=3.14159
  14. 140  '
  15. 150  '.....start
  16. 160  CLS
  17. 170  COLOR 15,2
  18. 180  PRINT T$;TAB(57);"by George Murphy VE3ERP ";
  19. 190  COLOR 1,0:PRINT STRING$(80,223);
  20. 200  COLOR 7,0
  21. 210  GOTO 600
  22. 220  '
  23. 230  '.....diagrams
  24. 240  COLOR 0,7
  25. 250  LOCATE ,CO:PRINT " Vcc        L1          C2      "
  26. 260  LOCATE ,CO:PRINT " + SOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDORORORORSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDSOUNDSOUND "
  27. 270  LOCATE ,CO:PRINT "  Q1 |             CALL            "
  28. 280  LOCATE ,CO:PRINT " CoutINSTR Lo-Z     C1THENINSTRTHEN      Hi-Z "
  29. 290  LOCATE ,CO:PRINT "     | DEFSNGSOUND          CALL         SOUNDDEFDBL "
  30. 300  LOCATE ,CO:PRINT " - SOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND "
  31. 310  COLOR 15,2
  32. 320  LOCATE ,CO+10:PRINT " NETWORK #1 "
  33. 330  COLOR 7,0
  34. 340  RETURN
  35. 350  '
  36. 360  COLOR 0,7
  37. 370  LOCATE ,CO:PRINT " Vcc       C1    L1             "
  38. 380  LOCATE ,CO:PRINT " + SOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDSOUNDORORORORSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND "
  39. 390  LOCATE ,CO:PRINT "  Q1 |                 CALL        "
  40. 400  LOCATE ,CO:PRINT " CoutINSTR Lo-Z         C2THENINSTRTHEN  Hi-Z "
  41. 410  LOCATE ,CO:PRINT "     | DEFSNGSOUND              CALL     SOUNDDEFDBL "
  42. 420  LOCATE ,CO:PRINT " - SOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND "
  43. 430  COLOR 15,2
  44. 440  LOCATE ,CO+10:PRINT " NETWORK #2 "
  45. 450  COLOR 7,0
  46. 460  RETURN
  47. 470  '
  48. 480  COLOR 0,7
  49. 490  LOCATE ,CO:PRINT " Vcc        L1         L2       "
  50. 500  LOCATE ,CO:PRINT " + SOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDORORORORSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDORORORORSOUNDSOUNDSOUNDSOUNDSOUND "
  51. 510  LOCATE ,CO:PRINT "  Q1 |            CALL             "
  52. 520  LOCATE ,CO:PRINT " CoutINSTR Lo-Z    C1THENINSTRTHEN       Hi-Z "
  53. 530  LOCATE ,CO:PRINT "     | DEFSNGSOUND         CALL          SOUNDDEFDBL "
  54. 540  LOCATE ,CO:PRINT " - SOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND "
  55. 550  COLOR 15,2
  56. 560  LOCATE ,CO+10:PRINT " NETWORK #3 "
  57. 570  COLOR 7,0
  58. 580  RETURN
  59. 590  '
  60. 600  '.....input menu
  61. 610  RO=2:CO=0
  62. 620  LOCATE 3:CO=7:GOSUB 240
  63. 630  LOCATE 3:CO=43:GOSUB 360
  64. 640  LOCATE 11:CO=25:GOSUB 480
  65. 650  PRINT UL$;
  66. 660  GOSUB 2070
  67. 670  COLOR 0,7:LOCATE 25,22
  68. 680  PRINT " Press 1 to continue or 0 to EXIT.....";
  69. 690  COLOR 7,0
  70. 700  Z$=INKEY$:IF Z$=""THEN 700
  71. 710  IF Z$="0"THEN CLS:CHAIN GO$
  72. 720  IF Z$="1"THEN 750
  73. 730  GOTO 700
  74. 740  '
  75. 750  LOCATE 25,10
  76. 760  COLOR 15,6
  77. 770  PRINT " Press one of the three network numbers to start program......";
  78. 780  COLOR 7,0
  79. 790  N$=INKEY$:IF N$=""THEN 790
  80. 800  IF VAL(N$)<1 OR VAL(N$)>3 THEN 790
  81. 810   CLS:LOCATE 1,19:COLOR 15,2
  82. 820  PRINT "  TRANSMITTER  TRANSISTOR  STAGE  COUPLING  "
  83. 830  COLOR 7,0:LOCATE 8:PRINT UL$;
  84. 840  LOCATE 2:CO=25
  85. 850  IF N$="1" THEN GOSUB 240:GOTO 950
  86. 860  IF N$="2" THEN GOSUB 360:GOTO 950
  87. 870  IF N$="3" THEN GOSUB 480:GOTO 950
  88. 880  GOTO 790
  89. 890  '
  90. 900  '.....format input line
  91. 910  LOCATE CSRLIN-1:PRINT SPC(7);
  92. 920  LOCATE CSRLIN,47:PRINT STRING$(7,".");USING U$;ZZ;
  93. 930  RETURN
  94. 940  '
  95. 950  '.....input data
  96. 960  XS=0:XP=0:RS=0:RP=O:XCS=0
  97. 970  INPUT " ENTER: Frequency...............................(MHz)";F
  98. 980  ZZ=F:GOSUB 900:PRINT " Mhz"
  99. 990  INPUT " ENTER: Selected Q (typically 1 to 5)................";Z
  100. 1000  QI=INT((Z*10+5)/10)
  101. 1010  LOCATE CSRLIN-1
  102. 1020  PRINT "        Selected Q...................................";USING C$;QI
  103. 1030  PRINT " Do you know the internal capacitance Cout of transistor Q1?  (y/n)"
  104. 1040  Z$=INKEY$:IF Z$=""THEN 1040
  105. 1050  IF Z$="y"THEN LOCATE CSRLIN-1:PRINT X$;:LOCATE CSRLIN-1:GOTO 1090
  106. 1060  IF Z$="n"THEN LOCATE CSRLIN-1:PRINT X$;:LOCATE CSRLIN-1
  107. 1070  PRINT "        Q1 Cout parallel capacitance.................     ignored"
  108. 1080  COUT=0:GOTO 1120
  109. 1090  INPUT " ENTER: Q1 Cout parallel capacitance.............(pF)";COUT
  110. 1100  ZZ=COUT:GOSUB 900:PRINT " pF"
  111. 1110  '
  112. 1120  INPUT " ENTER: Voltage Vcc...........................(volts)";VCC
  113. 1130  ZZ=VCC:GOSUB 900:PRINT " volts"
  114. 1140  INPUT " ENTER: Lo-Z stage output power...............(watts)";PO
  115. 1150  ZZ=PO:GOSUB 900:PRINT " watts"
  116. 1160  RP=VCC^2/(2*PO)
  117. 1170  PRINT "                   approximate impedance..........Rp<UNK! {00F7}>";USING U$;RP;
  118. 1180  PRINT " ohms"
  119. 1190  IF COUT=0 THEN XP=0:GOTO 1210
  120. 1200  XP=1/(2*PI*F*10^6*COUT*10^-12)
  121. 1210  PRINT "                   parallel reactance.............Xp=";USING U$;XP;
  122. 1220  PRINT " ohms"
  123. 1230  IF COUT=0 THEN RS=RP:GOTO 1250
  124. 1240  RS=RP*XP^2/(RP^2+XP^2)
  125. 1250  PRINT "                   equivalent series resistance...Rs=";USING U$;RS;
  126. 1260  PRINT " ohms"
  127. 1270  IF COUT=0 THEN XS=0:GOTO 1290
  128. 1280  XS=RP^2*XP/(RP^2+XP^2)
  129. 1290  PRINT "                   equivalent series reactance....Xs=";USING U$;XS;
  130. 1300  PRINT " ohms"
  131. 1310  IF COUT=0 THEN XCS=0:GOTO 1330
  132. 1320  XCS=RS*RP/XP
  133. 1330  RV=RS*(1+QI^2)
  134. 1340  PRINT "                   virtual resistance of network..Rv=";USING U$;RV;
  135. 1350  PRINT " ohms"
  136. 1360  INPUT " ENTER: Hi-Z stage input impedance (typically 50 -)..";RL
  137. 1370  LOCATE CSRLIN-1
  138. 1380  PRINT "        Hi-Z stage input impedance...................";USING U$;RL;
  139. 1390  PRINT " ohms"
  140. 1400  IF RL>RS THEN 1470
  141. 1410  BEEP:COLOR 14,4
  142. 1420  LOCATE ,15:PRINT "      INSUFFICIENT POWER OUTPUT FROM Lo-Z STAGE      "
  143. 1430  LOCATE ,15:PRINT " Press any key to try again with increased power.... "
  144. 1440  IF INKEY$=""THEN 1440
  145. 1450  COLOR 7,0:VIEW PRINT 9 TO 24:CLS:VIEW PRINT:LOCATE 9:GOTO 950
  146. 1460  '
  147. 1470  IF RV/RL-1>0 THEN 1560
  148. 1480  BEEP:COLOR 14,4
  149. 1490  LOCATE ,8:PRINT " The maximum possible Hi-Z match is";USING "###.##";RV;
  150. 1500  PRINT " ohms.";STRING$(22,32)
  151. 1510  LOCATE ,8:PRINT " Press any key to try again with a higher Q and/or ";
  152. 1520  PRINT "increased power..."
  153. 1530  IF INKEY$=""THEN 1530
  154. 1540  COLOR 7,0:VIEW PRINT 9 TO 24:CLS:VIEW PRINT:LOCATE 9:GOTO 950
  155. 1550  '
  156. 1560  QL=SQR(RV/RL-1)
  157. 1570  PRINT "        Load Q.......................................";USING U$;QL
  158. 1580  TQ=QI+QL
  159. 1590  PRINT "        Total Q (selected Q + Load Q)................";USING U$;TQ
  160. 1600  IF N$="1"THEN GOSUB 1810
  161. 1610  IF N$="2"THEN GOSUB 1880
  162. 1620  IF N$="3"THEN GOSUB 1950
  163. 1630  '
  164. 1640  '.....print component values
  165. 1650  L1=XL1/(2*PI*F)
  166. 1660  PRINT "        L1...........................................";USING U$;L1;
  167. 1670  PRINT " >H"
  168. 1680  IF XL2=0 THEN 1720
  169. 1690  L2=XL2/(2*PI*F)
  170. 1700  PRINT "        L2...........................................";USING U$;L2;
  171. 1710  PRINT " >H"
  172. 1720  C1=10^6/(2*PI*F*XC1)
  173. 1730  PRINT "        C1...........................................";USING C$;C1;
  174. 1740  PRINT " pF";
  175. 1750  IF XC2=0 THEN 1790
  176. 1760  C2=10^6/(2*PI*F*XC2)
  177. 1770  PRINT "        C2...........................................";USING C$;C2;
  178. 1780  PRINT " pF";
  179. 1790  GOTO 2020
  180. 1800  '
  181. 1810  '.....network #1
  182. 1820  XL1=QI*RS+XCS
  183. 1830  XL2=0
  184. 1840  XC1=RV/(QI-QL)
  185. 1850  XC2=QL*RL
  186. 1860  RETURN
  187. 1870  '
  188. 1880  '.....network #2
  189. 1890  XC1=QI*RS:C1=10^6/(2*PI*F*XC1)
  190. 1900  XC2=RL*SQR(RS/(RL-RS))
  191. 1910  XL1=XC1+(RS*RL/XC2)+XCS
  192. 1920  XL2=0
  193. 1930  RETURN
  194. 1940  '
  195. 1950  '.....network #3
  196. 1960  XL1=RS*QI+XCS
  197. 1970  XL2=RL*QL
  198. 1980  XC1=RV/(QI+QL)
  199. 1990  XC2=0
  200. 2000  RETURN
  201. 2010  '
  202. 2020  '.....end
  203. 2030  GOSUB 2230
  204. 2040  GOTO 150   'start
  205. 2050  END
  206. 2060  '
  207. 2070  '.....text
  208. 2080  T=7
  209. 2090  PRINT TAB(T);
  210. 2100  PRINT "The value of Cout is taken from the manufacturer's data sheet for"
  211. 2110  PRINT TAB(T);
  212. 2120  PRINT "transistor Q1. If unavailable it can be ignored at the expense of"
  213. 2130  PRINT TAB(T);
  214. 2140  PRINT "a slight methematical error in the network determination. By making"
  215. 2150  PRINT TAB(T);
  216. 2160  PRINT "C1 variable the network can be made to approximate the correct"
  217. 2170  PRINT TAB(T);
  218. 2180  PRINT "transformation ratio."
  219. 2190  PRINT TAB(T);
  220. 2200  PRINT "(see the 1996 ARRL HANDBOOK for RADIO AMATEURS, pp. 17.55 - 17.56)";
  221. 2210  RETURN
  222. 2220  '
  223. 2230  'HARDCOPY
  224. 2240  GOSUB 2350:LOCATE 25,2:COLOR 14,6
  225. 2250  PRINT " Press 1 to print screen, 2 to print screen & ";
  226. 2260  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  227. 2270  Z$=INKEY$:IF Z$="3"THEN GOSUB 2350:RETURN
  228. 2280  IF Z$="1"OR Z$="2"THEN GOSUB 2350:GOTO 2300
  229. 2290  GOTO 2270
  230. 2300  FOR QX=1 TO 24:FOR QY=1 TO 80
  231. 2310  LPRINT CHR$(SCREEN(QX,QY));
  232. 2320  NEXT QY:NEXT QX
  233. 2330  IF Z$="2"THEN LPRINT CHR$(12)
  234. 2340  GOTO 2240
  235. 2350  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  236.